

#ifndef _GeometryTrans_H_
#define _GeometryTrans_H_

#include "ExchangeApi.hpp"
#include "../OLApp/defines.hpp"
#include "../OLCore/AbstractObject.hpp"

#include <TopoDS_Vertex.hxx>
#include <TopoDS_Edge.hxx>
#include <TopoDS_Face.hxx>
#include <TopoDS_Shape.hxx>

#include <vtkSmartPointer.h>
#include <vtkPolyData.h>
#include <vtkVertex.h>
#include <vtkTriangle.h>
#include <vtkPoints.h>
#include <vtkPolyLine.h>
#include <vtkCellArray.h>
#include <vtkPolyData.h>
#include <QPair>


namespace NSExchange {

	class GeometryData;

	class EXCHANGEAPI GeometryTrans :
		public NSCore::AbstractObject 
	{
	public:
		static int m_index;
	public:
		static Sp(vtkPolyData) Vertex(const TopoDS_Vertex& vertex_t, QList<int>& ids);
		static Sp(vtkPolyData) Edge(const TopoDS_Edge& edge_t, QList<int>& ids);
		static Sp(vtkPolyData) Face(const TopoDS_Face& face_t, QList<int>& ids);
		static void All(const TopoDS_Shape& shape, GeometryData* geom, QList<int>& ids);
		static void isSolid(const TopoDS_Shape& shape, bool& solid);

	public:
		virtual inline QString className() override { return "GeometryTrans"; };
	private:
		

	};
}


#endif

